﻿==============================================================================
DOSYA ADI  : CharacterSelectionHandler.cpp
KAYNAK      :-GameServer\CharacterSelectionHandler.cpp
SISTEM      : v2369 Reconnect - SUNUCU
BOYUT       : 38641 bayt / 1477 satir
ACIKLAMA    : Karakter secimi sonrasi token yenileme ve reconnect ACK
ESLESME     : 19 satir / 1 blok
==============================================================================

NOT: Bu dosya yalnizca RECONNECT ile ilgili kod bloklarini icerir.
     Satir numaralari KAYNAK dosyadaki orijinal satirlardir.

----------------------------------------------------------------------
>> KAYNAK SATIR 1101 - 1183
----------------------------------------------------------------------
  1101 | 				if (pKnightUser != nullptr) {
  1102 | 					Packet zaresult(WIZ_KNIGHTS_PROCESS, uint8(0x62));
  1103 | 					zaresult << uint8(pKnights->m_sOnline);
  1104 | 					Send(&zaresult);
  1105 | 				}*/
  1106 | 			}
  1107 | 		}
  1108 | 		auto* TopLeft = g_pMain->m_TopLeftArray.GetData(0x01);
  1109 | 		if (TopLeft != nullptr)
  1110 | 		{
  1111 | 			Packet result(XSafe);
  1112 | 			result << uint8(XSafeOpCodes::TOPLEFT);
  1113 | 			result.DByte();
  1114 | 			result << TopLeft->Facebook << TopLeft->FacebookURL << TopLeft->Discord << TopLeft->DiscordURL << TopLeft->Live << TopLeft->LiveURL;
  1115 | 			result << TopLeft->ResellerURL;
  1116 | 			Send(&result);
  1117 | 		}
  1118 | 	}
  1119 | 	else if (opcode == 2)
  1120 | 	{
  1121 | 		if (m_state != GameState::GAME_STATE_CONNECTED)
  1122 | 			return goDisconnect("m_state not connected.", __FUNCTION__);
  1123 | 
  1124 | 		ZoneOnlineRewardStart();
  1125 | 		m_state = GameState::GAME_STATE_INGAME;
  1126 | 		if (m_reconnectHydrating)
  1127 | 		{
  1128 | 			if (m_reconnectRestoreZone != 0)
  1129 | 				m_bZone = m_reconnectRestoreZone;
  1130 | 			SetPosition(m_reconnectRestoreX, m_reconnectRestoreY, m_reconnectRestoreZ);
  1131 | 		}
  1132 | 		g_pMain->AddCharacterName(this);
  1133 | 		UserInOut(INOUT_RESPAWN);
  1134 | 
  1135 | 		SetUserAbility(true);
  1136 | 		if (m_reconnectHydrating)
  1137 | 		{
  1138 | 			RestoreReconnectMerchant();
  1139 | 			// Disconnect'te korunan parti üyeliğini yeni oturuma bağla.
  1140 | 			RestoreReconnectParty();
  1141 | 			if (m_reconnectRestoreGenie)
  1142 | 				GenieStart();
  1143 | 
  1144 | 			Packet reconnectAck(XSafe);
  1145 | 			reconnectAck << uint8(WIZ_RECONNECT) << uint8(3) << uint8(1);
  1146 | 			Send(&reconnectAck);
  1147 | 			printf("[RECONNECT] ACK sent account=%s character=%s\n", GetAccountName().c_str(), GetName().c_str());
  1148 | 			m_reconnectHydrating = false;
  1149 | 		}
  1150 | 		else
  1151 | 		{
  1152 | 			SendReconnectToken();
  1153 | 			// Premium yoksa: önceki oturumdan AC (Pearl Guard) hafızasında
  1154 | 			// kalmış olabilecek stale reconnect token'ını temizlet. Böylece
  1155 | 			// bu girişte reconnect hakkı doğrulanmaz ve kopmada oyuncu
  1156 | 			// köprü/reconnect paneli görmeden doğrudan disconnect olur.
  1157 | 			if (!IsReconnectEligible())
  1158 | 				SendReconnectRevoke();
  1159 | 		}
  1160 | 		GmListProcess(false);
  1161 | 		Send_myPerks();
  1162 | 		//SendTagUserList(this);
  1163 | 
  1164 | 		// BuhuR Sistem Mesajları Renk Kırmızı Eklendi 02.01.2025
  1165 | 		std::vector< _SEND_MESSAGE> m_messagelist;
  1166 | 		g_pMain->m_SendMessageArray.m_lock.lock();
  1167 | 		foreach_stlmap_nolock(itr, g_pMain->m_SendMessageArray) {
  1168 | 			_SEND_MESSAGE* msg = itr->second;
  1169 | 			if (msg == nullptr || msg->SendType != 1)
  1170 | 				continue;
  1171 | 
  1172 | 			uint8 type = (uint8)msg->bChatType; //ChatType 2 Private Chat.
  1173 | 			m_messagelist.push_back(*itr->second);
  1174 | 		}
  1175 | 		g_pMain->m_SendMessageArray.m_lock.unlock();
  1176 | 
  1177 | 		foreach(itr, m_messagelist)
  1178 | 		{
  1179 | 			Packet result;
  1180 | 			ChatPacket::Construct(&result, (uint8)itr->bChatType, &(itr->strMessage), &(itr->strSender), GetNation(), -1, GetLoyaltySymbolRank(), (uint8)21); // Sistem Mesajları Renkli Kırmızı Eklendi 
  1181 | 			Send(&result);
  1182 | 		}
  1183 | 		{ // BuhuR Sistem Mesajları Renk Sari Eklendi 02.01.2025

